From b943b7f6e0707e76b6e990c53a9c120adf40b337 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Sun, 18 Sep 2005 21:09:34 +0000 Subject: [PATCH] website updates --- docs/Makefile.am | 44 +++++++++--- docs/index-static.html.in | 140 +++++++++++++++++++++++++++----------- 2 files changed, 135 insertions(+), 49 deletions(-) diff --git a/docs/Makefile.am b/docs/Makefile.am index a91b2b1..38e6f19 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -8,7 +8,8 @@ DIST_SUBDIRS= graphics # # HTML_FILES = index-static.html \ - index.html + index.html \ + BablFishPath.html EXTRA_DIST= \ .cvsignore \ @@ -18,24 +19,42 @@ EXTRA_DIST= \ index.html \ LGPL -BUILT_EXTRA_DIST = index.html +BUILT_EXTRA_DIST = index.html BablFishPath.html -CLEANFILES = README +CLEANFILES = README changelog.rss DISTCLEANFILES = index-static.html -MAINTAINERCLEANFILES = index.html +MAINTAINERCLEANFILES = $(BUILT_EXTRA_DIST) -all: $(HTML_FILES) +all: $(HTML_FILES) rss +BablFishPath.html: $(top_builddir)/tests/babl_fish_path_dhtml + echo -n "HTML:" + echo -n " $@" + export BABL_PATH="$(top_builddir)/extensions"; $< > $@ &&\ + echo " [OK]" || echo " Fail" -index.html: index-static.html $(top_builddir)/tests/babl_html_dump $(top_srcdir)/AUTHORS $(top_srcdir)/NEWS $(top_srcdir)/extensions/*.so Makefile.am +BablFishPath.txt: $(top_builddir)/tests/babl_fish_path_fitness + echo -n "UTF8:" + echo -n " $@" + export BABL_PATH="$(top_builddir)/extensions"; $< > $@ &&\ + echo " [OK]" || echo " Fail" + +index.html: index-static.html \ + $(top_builddir)/tests/babl_html_dump \ + $(top_srcdir)/AUTHORS \ + $(top_srcdir)/NEWS \ + BablFishPath.txt \ + Makefile.am echo -n "HTML: $@" cp $< $@ (TMPFILE=`tempfile`;\ export BABL_PATH="$(top_builddir)/extensions"; $(top_builddir)/tests/babl_html_dump > $$TMPFILE;\ $(top_srcdir)/docs/tools/xml_insert.sh $@ BablBase $$TMPFILE;\ rm -f $$TMPFILE ) - + echo -n "." + + $(top_srcdir)/docs/tools/xml_insert.sh $@ BablFishPath BablFishPath.txt $(top_srcdir)/docs/tools/xml_insert.sh $@ AUTHORS $(top_srcdir)/AUTHORS $(top_srcdir)/docs/tools/xml_insert.sh $@ NEWS $(top_srcdir)/NEWS echo " [OK]" @@ -45,12 +64,21 @@ distclean-local: rm -f $(BUILT_EXTRA_DIST); \ fi +rss: changelog.rss + +rss: changelog.rss + +changelog.rss: ../ChangeLog + echo -n " RSS:" + echo -n " $@" + tools/changelog2rss $< > $@ && \ + echo " [OK]" || echo " Fail" web: all graphics echo -n " WEB: " ping -c 1 $(WEBSITE_HOST) >/dev/null && \ (\ - scp *.html *.css\ + scp *.txt *.html *.css\ "$(WEBSITE_HOST):$(WEBSITE_LOCATION)/" >/dev/null && \ echo -n "."; \ scp graphics/*.png graphics/*.html\ diff --git a/docs/index-static.html.in b/docs/index-static.html.in index a318276..796632d 100644 --- a/docs/index-static.html.in +++ b/docs/index-static.html.in @@ -16,14 +16,14 @@ @@ -70,27 +68,32 @@

Contents

- +
-

About

+

Babl is a dynamic, any to any, pixel format conversion library It provides conversions between the myriad of buffer types images can be stored in. Babl doesn't only help with existing @@ -99,8 +102,56 @@

News

+ -

Also see the ChangeLog in CVS.

+--> +

See the ChangeLog in CVS.

+ + +

Background

+

When creating various libraries and small tool that deal with + computer graphics I often have created conversion functions + transforming raster images between different representations.

+ +

Libraries to help with such conversions already do exist, but no + extendable candidate have surfaced in searches when looking. +

+ +

The vocabulary developed in babl will most likely be part of GEGL's + vocabulary to describe image buffers. +

+ + +

How babl works

+

When using BablFishes to do your conversions, you request a fish to + convert between two formats, and an optimal fish to babls capability is + provided that you can use to do your conversions. Babl also provides + the capability to describe new formats based on a vocbulary of user + registered color models and data types. +

+ +

The need to provide your own reference conversions should be + unneccesary, since babl provides a good base vocabulary in BablBase, + as well as extensions.

+ +

When performing further extensions to the vocabulary of babl, the + internal consistency is governed by reference conversions that operate + on double (64 bit floating point values.) The only color model + created during BablCore bootstrap is RGBA (linear light RGB, + 0.0 - 1.0, with a linear 0.0 - 1.0 opacity channel.) backed by + double. +

+ +

If what babls built in conversion isn't fast enough, you can provide + your own conversion between two formats, your registered conversion + will be taken into account when constructing other BablFishes as well. +

+ +

Babl extensions are shared objects, if you are already using a set + of conversion functions and you'd like to keep using them, as well as + the conversions babl provide, wrap your existing functions as an + extension. The code needed to wrap existing conversions is small. +

Features

@@ -114,11 +165,14 @@
  • Extendable and introspectable formats, color models, components and datatypes
  • Reference 64bit floating point conversions for - data types and color models. - -
  • + data types and color models. + +

    Vocabulary

    + + +

    Extensions

    At compile, load and runtime; babl is extendable with: @@ -137,6 +191,14 @@ +

    Shortcut coverage

    +

    The diagram shown below is the coverage of shortcut conversions that already exist, + prior to the BablFishPath actually being operational, due to lack of testing of loss + against the reference conversions this is the most optimistic estimate. (DHTML version) +

    +
    +
    +

    Dependencies

    @@ -169,7 +231,7 @@ buffers represented by an existing BablPixelFormat.

    babl_process (babl_fish ("srgb", "lab-float"),
    +>babl_process (babl_fish ("srgb", "CIE Lab float"),
                   srgb_buffer, lab_buffer,
                   pixel_count);
    @@ -177,22 +239,22 @@ needs, new ones can be created on the fly. The constructor will provide the prior created one if duplicates are registered.

    babl_format_new (babl_model ("rgb"),
    +>babl_format_new (babl_model ("R'G'B'"),
                      babl_type ("u8"),
    -                 babl_component ("B"),
    -                 babl_component ("G"),
    -                 babl_component ("R"),
    +                 babl_component ("B'"),
    +                 babl_component ("G'"),
    +                 babl_component ("R'"),
                      NULL);

    Instead of a linear buffer you can an image descriptor which desribes the start of the memory segment, the pitch in bytes between samples, and the rowstride (not used yet, use 0 to indicate unlimited for compatibility with future API.)

    babl_process (babl_fish ("srgb", "y'cbcr420p"),
    +>babl_process (babl_fish ("srgb", "Y'CbCr u8"),
                   srgb_buffer,
                   babl_image ("Y'", luma_buffer, 1, 0,
    -                          "Cb", cb_buffer,  1, 0,
    -                          "Cr", cr_buffer,  1, 0,
    +                          "Cb", cb_buffer,   1, 0,
    +                          "Cr", cr_buffer,   1, 0,
                               NULL);
     
    @@ -207,35 +269,31 @@ similar in style to the API's described under the Usage section.

    + +

    Color Management

    +

    Babl is not a color management system, since it doesn't deal with + ICC profiles. One way to deal with this is to register a custom color + model, that is backed by for instance lcms. (see the + lcms-lab extension) Then when using the newly registered color + model to create pixel formats, lcms will be used behind the scenes. +

    TODO

      -
    • Compile and/or runtime profiling. (The speed of conversions +
    • Compile-time instead of runtime profiling / storae of profiling + and loss data.. (The speed of conversions is bound to 'wobble', according to architecture, compiler flags, concurrently running processes and phase of moon.)
    • Horizontal and vertical subsampling (for implementing 4:2:2 4:2:0 4:1:1 etc. chroma subsampling)
    • Thread safety for mutations of the type system.
    • Support for datatypes that are not a multiple of 8bit.
    • - - +
    • dithering
    • +
    • image resampling?
    -

    Copyright

    -- 2.30.2